{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import json\n",
    "import numpy as np\n",
    "\n",
    "import torch\n",
    "\n",
    "from dataset import data_transform\n",
    "from utils import DotDict, Logger, denormalize_data, rmse, bias, rel_error\n",
    "from bahdanau_att import EncoderLSTM, BahdanauDecoder\n",
    "\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# DATA IMPORTATION AND VISUALIZATION"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Traffic intensity')"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1190x340 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "datadir = 'data'\n",
    "dataset = 'tem_data.csv'\n",
    "data = torch.Tensor(np.genfromtxt(os.path.join('..',datadir, dataset)))\n",
    "\n",
    "plt.figure('Average Traffic Dataset', figsize=(14, 4), dpi=85)\n",
    "plt.plot(data.squeeze().numpy())\n",
    "plt.title('Average Traffic Dataset')\n",
    "plt.xlabel('Timestep')\n",
    "plt.ylabel('Traffic intensity')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# TRAINING AND TEST ERROR METRICS\n",
    " - Additional parameters via --parameter_name value\n",
    " - For simplicity, 60%-20%-20% validation scheme (training-validation-test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 45%|████▌     | 90/200 [17:55<21:28, 11.71s/it, lr=0.0001, train_mse=0.000102, train_rmse=0.0101, val_mse=0.00674, val_rmse=0.0821]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "================================================\n",
      " *  Test MSE:  7109.08154296875 \n",
      " *  Test RMSE:  84.31536955365107 \n",
      " *  Test Bias:  -1.9732249975204468 \n",
      " *  Test Rel-Err (%):  9.342940151691437\n",
      "================================================\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    " run training.py"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# RESULTS\n",
    " - Example: average prediction from 00:00 to 23:00\n",
    " - Learning curve\n",
    " - Error distribution: temporal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "outputdir  = opt.outputdir\n",
    "with open(os.path.join(outputdir, 'logs.json'), 'r') as f:\n",
    "    logs = json.load(f)\n",
    "    \n",
    "with open(os.path.join(outputdir, 'config.json'), 'r') as f:\n",
    "    config = json.load(f)\n",
    "\n",
    "opt = DotDict(config)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "encoder = EncoderLSTM(opt.in_dim, opt.n_hidden)\n",
    "encoder.to(device)\n",
    "encoder.load_state_dict(torch.load(os.path.join(outputdir,\"encoder_model.pth\")))\n",
    "decoder = BahdanauDecoder(opt.n_hidden, opt.out_dim)\n",
    "decoder.to(device)\n",
    "decoder.load_state_dict(torch.load(os.path.join(outputdir,\"decoder_model.pth\")))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "_, _, _, _, X_test, Y_test, min_value, max_value = data_transform(opt)\n",
    "\n",
    "test_dataset = []\n",
    "for i in range(len(X_test)):\n",
    "   test_dataset.append([X_test[i], Y_test[i]]) \n",
    "    \n",
    "test_loader = torch.utils.data.DataLoader(dataset = test_dataset,\n",
    "                                           batch_size = len(X_test),\n",
    "                                           shuffle = False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def evaluate(encoder, decoder, batch, device = device):\n",
    "     output = torch.Tensor().to(device)\n",
    "     \n",
    "     h = encoder.init_hidden(batch.size(0))\n",
    "            \n",
    "     encoder_output, h = encoder(batch,h)\n",
    "     decoder_hidden = h\n",
    "     decoder_input = torch.zeros(batch.size(0), 1, device = device)\n",
    "            \n",
    "     for k in range(opt.n_out):\n",
    "         decoder_output, decoder_hidden, attn_weights = decoder(decoder_input, decoder_hidden, encoder_output)\n",
    "         decoder_input = decoder_output\n",
    "         output = torch.cat((output, decoder_output),1)\n",
    "\n",
    "     return output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "encoder.eval()\n",
    "decoder.eval()\n",
    "with torch.no_grad():    \n",
    "    for x,y in test_loader:\n",
    "        x = x.view(-1,opt.n_inp,opt.in_dim).to(device)\n",
    "        y = y.to(device)\n",
    "     \n",
    "        y_pred = evaluate(encoder, decoder, x)\n",
    "        \n",
    "        y_pred_dnorm = denormalize_data(y_pred, min_value, max_value).cpu()\n",
    "        y_dnorm = denormalize_data(y, min_value, max_value).cpu()\n",
    "\n",
    "y_tstep = y_dnorm[1::24]\n",
    "y_pred_tstep = y_pred_dnorm[1::24]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Average prediction')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 840x280 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "real = y_tstep.mean(0)\n",
    "prediction = y_pred_tstep.mean(0)\n",
    "\n",
    "plt.figure('Results', figsize=(12, 4), dpi=70)\n",
    "\n",
    "plt.plot(real, label = 'Ground truth')\n",
    "plt.plot(prediction, label = 'Prediction')\n",
    "plt.legend()\n",
    "plt.title('Average prediction')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Learning curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fbb618ad310>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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iUR46qmnuPLKKzs9dtGiRYwdO/aI3vfQoPall146ovN0l4La7ti8FEadCr521kfOyodhx2uymIiIiPS4q666ir/97W9EY2WPy5YtY/LkyWzatIlTTz2VE044gTPPPJOdOw9f8fSMM87g/fffB2DhwoVMmDCBs88+m/Xr1zft89///d/Mnj2bKVOm8I1vfAOABx54gB07dnDqqadyxRVXAFBQUACAtZbbb7+dqVOnMmPGDJYsWQLA7373O66++mrOOeccxo0bx3333ZeUz+9Lyln6o/oq2LEKzvl2x/uVzoe3fw+RMHj14xYREekXGqt7pvxw6GTIGNDmS4WFhYwfP55XXnmF+fPn89hjj3HNNdcwefJkXnnlFbxeL4888gj33HMPP/rRj9o8R0VFBffeey8rV67E4/FwwgkncNpppwFw22238a1vfYtoNMqFF17Iu+++y6233sq9997L66+/Tk5OTqtzPfHEE2zcuJHVq1ezbds2zjjjDNatWwfA+++/z4oVKwiFQkyYMIEvfelLpKWldetHoyjrSG19BbDt19PGlc6HN34GO1a2X6YgIiIix5Y9a+E35yX/vJ97Hka2uUosANdccw1/+ctfOP3003n66af57ne/y/79+7n++uvZvHkz4XCYUaNGtXv8ihUrOOuss8jLc12dLr300qbXXnjhBe655x4CgQC7du1i7dq1TJ8+vd1zvfrqq1x33XV4PB5Gjx7N+PHjmzK/Z511FtnZ2QAUFRWxe/duRowY0aUfxaEU1B6pzUshazAUTu14v1Gngsfn6moV1IqIiPQPQye7ALQnztuBK6+8ku985ztcdtllTJs2jcGDB/OVr3yFiy66iJtuuomysjLuuuuudo+31mKMOez5xsZGbr/9dlasWEFRURE333wzgUCgS0Nvee709ObSTa/XSyQS6dK52qKg9khtXuqysJ5OypLTc6D4RNi8DOZ9rVeGJiIiIimWMaDDjGpPKSgoYNKkSdxxxx18+ctfBqC6upqSkhIA/vjHP3Z4/OzZs/na177GwYMH8Xq9PP3009x22200NjZijKGgoICqqioWL17MnDnu8+Xm5lJTU3NY+cHpp5/OQw89xLXXXsv27dvZuHEj48ePZ+XKlT3wyTVRDHavgZrdXesle2CbW/52TDv9aQ9VOg+2v+n62oqIiIj0oGuuuYZ169Zx+eWX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\n",
      "text/plain": [
       "<Figure size 840x280 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure('Error', figsize=(12, 4), dpi=70)\n",
    "plt.plot(np.sqrt(logs['train.mse']), label = 'Train')\n",
    "plt.plot(np.sqrt(logs['val.mse']), label = 'Validation')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Temporal RMSE distribution: hour"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Hour of the day')"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1190x340 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure('RMSE dist hour', figsize=(14, 4), dpi=85)\n",
    "plt.bar(x = range(0,24),height = rmse(y_pred_tstep,y_tstep, reduce = False))\n",
    "plt.ylabel('RMSE')\n",
    "plt.xlabel('Hour of the day')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Temporal RMSE distribution: timestep"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Timestep')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1190x340 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure('RMSE dist timestep', figsize=(14, 4), dpi=85)\n",
    "plt.bar(x = range(0,24),height = rmse(y_pred_dnorm, y_dnorm, reduce = False))\n",
    "plt.ylabel('RMSE')\n",
    "plt.xlabel('Timestep')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
